// 这是需求进程
#pragma once

#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include "Common.hpp"

class Client
{
public:
    Client()
        :_fd(gdefaultfd)
    {}

    bool OpenPipeForWrite()
    {
        _fd = OpenPipe(gForWrite);  // 让客户端写
        if(_fd < 0)  // open 失败会返回 -1
            return false;
        return true;
    }

    // 接收管道里的信息
    int SendPipe(const string& in)
    {
        return ::write(_fd, in.c_str(), in.size());
    }

    void ClosePipe()
    {
        ClosePipeHelper(_fd);
    }

    ~Client()
    {}
private:
    int _fd;
};